#ifndef _GAMEPROG_H_
#define _GAMEPROG_H_

#include <string>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

//Typedefs - must come before constants
typedef double locvar;
typedef float massvar;
typedef unsigned int idtype;

//Globally defined constants
const double PI = 3.14159265;
const int RESOLUTION = 1000.0;
const float DT = 100 / (RESOLUTION * 1.0);
const locvar ORIGIN_X(320), ORIGIN_Y(240);

// physics constants
// default is our universe's values: g = 9.8, UGC = 6.674 e-11, mu0 = 4PI e-7, c = 299792458
    // higher values of mu0 will increase the strength of magnetic fields and electric fields
    // higher values of UGC will increase strength of gravitational force
    // higher values of g will increase addQuickGravity acceleration
    // higher values of c will decrease epsilon0, which increases the strength of electric fields
const float G = 98;                        // approximate gravitational acceleration in N/m
const double UGC = 6.674*pow(10.0,-11);       // universal gravitational constant
const double MU0 = 4*PI*pow(10.0,-7);         // vacuum permeability
const int C = 299792458;                    // speed of light in m/s
const double EPSILON0 = 1/(MU0*pow(static_cast<double>(C),2));   // vacuum permittivity, depends on above constants

//Global Non-constants. Be very careful
idtype IDCOUNTER = 0;

#endif
